home *** CD-ROM | disk | FTP | other *** search
/ Aminet 45 / Aminet 45 (2001)(GTI - Schatztruhe)[!][Oct 2001].iso / Aminet / gfx / x11 / x3270_3_2_16.lha / amiga_src / CmplxMenuP.h < prev    next >
C/C++ Source or Header  |  2007-03-01  |  4KB  |  115 lines

  1. /*
  2.  * (from) $XConsortium: SimpleMenP.h,v 1.12 89/12/11 15:01:39 kit Exp $
  3.  *
  4.  * Modifications Copyright 1995, 1999 by Paul Mattes.
  5.  *  Permission to use, copy, modify, and distribute this software and its
  6.  *  documentation for any purpose and without fee is hereby granted,
  7.  *  provided that the above copyright notice appear in all copies and that
  8.  *  both that copyright notice and this permission notice appear in
  9.  *  supporting documentation.
  10.  *
  11.  * Copyright 1989 Massachusetts Institute of Technology
  12.  *
  13.  * Permission to use, copy, modify, distribute, and sell this software and its
  14.  * documentation for any purpose is hereby granted without fee, provided that
  15.  * the above copyright notice appear in all copies and that both that
  16.  * copyright notice and this permission notice appear in supporting
  17.  * documentation, and that the name of M.I.T. not be used in advertising or
  18.  * publicity pertaining to distribution of the software without specific,
  19.  * written prior permission.  M.I.T. makes no representations about the
  20.  * suitability of this software for any purpose.  It is provided "as is"
  21.  * without express or implied warranty.
  22.  *
  23.  * M.I.T. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
  24.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL M.I.T.
  25.  * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  26.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
  27.  * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 
  28.  * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  29.  */
  30.  
  31. /*
  32.  * ComplexMenuP.h - Private Header file for ComplexMenu widget.
  33.  * (from) SimpleMenuP.h - Private Header file for SimpleMenu widget.
  34.  *
  35.  * Date:    April 3, 1989
  36.  *
  37.  * By:      Chris D. Peterson
  38.  *          MIT X Consortium
  39.  *          kit@expo.lcs.mit.edu
  40.  */
  41.  
  42. #ifndef _ComplexMenuP_h
  43. #define _ComplexMenuP_h
  44.  
  45. #include "CmplxMenu.h"
  46. #include "CmeP.h"
  47. #include <X11/ShellP.h>
  48.  
  49. #define ForAllChildren(smw, childP) \
  50.   for ( (childP) = (CmeObject *) (smw)->composite.children ; \
  51.         (childP) < (CmeObject *) ( (smw)->composite.children + \
  52.                  (smw)->composite.num_children ) ; \
  53.         (childP)++ )
  54.  
  55. typedef struct {
  56.     XtPointer extension;        /* For future needs. */
  57. } ComplexMenuClassPart;
  58.  
  59. typedef struct _ComplexMenuClassRec {
  60.   CoreClassPart              core_class;
  61.   CompositeClassPart      composite_class;
  62.   ShellClassPart          shell_class;
  63.   OverrideShellClassPart  override_shell_class;
  64.   ComplexMenuClassPart      complexMenu_class;
  65. } ComplexMenuClassRec;
  66.  
  67. extern ComplexMenuClassRec complexMenuClassRec;
  68.  
  69. typedef struct _ComplexMenuPart {
  70.  
  71.   /* resources */
  72.  
  73.   String       label_string;    /* The string for the label or NULL. */
  74.   CmeObject   label;        /* If label_string is non-NULL then this is
  75.                    the label widget. */
  76.   WidgetClass  label_class;    /* Widget Class of the menu label object. */
  77.  
  78.   Dimension    top_margin;    /* Top and bottom margins. */
  79.   Dimension    bottom_margin;
  80.   Dimension    row_height;    /* height of each row (menu entry) */
  81.  
  82.   Cursor       cursor;        /* The menu's cursor. */
  83.   CmeObject popup_entry;    /* The entry to position the cursor on for
  84.                    when using XawPositionComplexMenu. */
  85.   Boolean      menu_on_screen;    /* Force the menus to be fully on the screen.*/
  86.   int          backing_store;    /* What type of backing store to use. */
  87.  
  88.   /* private state */
  89.  
  90.   Boolean recursive_set_values;    /* contain a possible infinite loop. */
  91.  
  92.   Boolean menu_width;        /* If true then force width to remain 
  93.                    core.width */
  94.   Boolean menu_height;        /* Just like menu_width, but for height. */
  95.  
  96.   CmeObject entry_set;        /* The entry that is currently set or
  97.                    highlighted. */
  98.   CmeObject prev_entry;        /* The entry that was previously set or
  99.                    highlighted. */
  100.   Widget parent;        /* If non-NULL, the widget that popped
  101.                    this menu up as a pullright. */
  102.   Widget deferred_notify;    /* If non-NULL, the widget (from a subordinate
  103.                    pullright menu) to notify on exit. */
  104. } ComplexMenuPart;
  105.  
  106. typedef struct _ComplexMenuRec {
  107.   CorePart        core;
  108.   CompositePart     composite;
  109.   ShellPart             shell;
  110.   OverrideShellPart     override;
  111.   ComplexMenuPart    complex_menu;
  112. } ComplexMenuRec;
  113.  
  114. #endif /* _ComplexMenuP_h */
  115.